home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / filesyst / ncpfs / ipxripd-.000 / ipxripd- / ipxripd / ipxrip.h < prev    next >
C/C++ Source or Header  |  1996-02-01  |  2KB  |  77 lines

  1. /*
  2.  
  3.     IPX support library
  4.  
  5.     Copyright (C) 1994, 1995  Ales Dryak <e-mail: A.Dryak@sh.cvut.cz>
  6.     Copyright (C) 1996, Volker Lendecke <lendecke@namu01.gwdg.de>
  7.  
  8.     This program is free software; you can redistribute it and/or modify
  9.     it under the terms of the GNU General Public License as published by
  10.     the Free Software Foundation; either version 2 of the License, or
  11.     (at your option) any later version.
  12.  
  13.     This program is distributed in the hope that it will be useful,
  14.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.     GNU General Public License for more details.
  17.  
  18.     You should have received a copy of the GNU General Public License
  19.     along with this program; if not, write to the Free Software
  20.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  
  22. */
  23. #ifndef __IPXRIP_H__
  24.  
  25. #define __IPXRIP_H__
  26.  
  27. #include <stdio.h>
  28. #include "ipxutil.h"
  29.  
  30. #define IPX_RIP_PORT        (0x453U)
  31. #define IPX_RIP_PTYPE        (1U)
  32. #define IPX_RIP_OP_REQUEST    (1U)
  33. #define IPX_RIP_GENERAL_RQ    (0xFFFFFFFFU)
  34. #define IPX_RIP_OP_RESPONSE    (2U)
  35. #define IPX_RIP_MAX_ENTRIES    (50U)
  36. #define IPX_RIP_NET_DOWN    (16U)
  37.  
  38. struct rip_entry
  39. {
  40.     IPXNet network __attribute__ ((packed));
  41.     hop_t  hops    __attribute__ ((packed));
  42.     tick_t ticks   __attribute__ ((packed));
  43. };
  44.  
  45. struct rip_packet
  46. {
  47.     unsigned short int operation      __attribute__ ((packed));
  48.     struct rip_entry   rip_entries[IPX_RIP_MAX_ENTRIES]
  49.                                   __attribute__ ((packed));
  50. };
  51.  
  52. int ipx_rip_size(int n);
  53. void ipx_rip_dump(struct rip_packet *pkt, int len);
  54. void ipx_rip_fdump(FILE* file, struct rip_packet *pkt, int len);
  55.  
  56. struct rip_output
  57. {
  58.     struct sockaddr_ipx dest_addr;
  59.     int                 sk;    /* the socket to send/receive on */
  60.     int                 send_error;
  61.     int                 entries;
  62.     struct rip_packet   buffer;
  63. };
  64.  
  65. int ipx_rip_output_init(struct rip_output *out, IPXNet net);
  66. void ipx_rip_output_flush(struct rip_output *out);
  67. void ipx_rip_output_request(struct rip_output *out,IPXNet net);
  68. void ipx_rip_output_response(struct rip_output *out, IPXNet net, hop_t hops,
  69.                  tick_t ticks, int down_allow);
  70. void ipx_rip_output_set_destination(struct rip_output *out, IPXNode node,
  71.                     IPXPort port);
  72.  
  73. extern int (*ipx_rip_output_func)(int sock, void *buffer, int size,
  74.                    struct sockaddr_ipx *daddr);
  75.  
  76. #endif
  77.